<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>table下拉选择器</title>
    <link rel="stylesheet" href="../lib/layui-v2.5.5/css/layui.css" media="all">
    <link rel="stylesheet" href="../js/lay-module/dtree/dtree.css" media="all">
    <link rel="stylesheet" href="../js/lay-module/dtree/font/dtreefont.css" media="all">
    <link rel="stylesheet" href="../css/public.css" media="all">
</head>

<body>
    <div class="layuimini-container">
        <div class="layuimini-main">

            <blockquote class="layui-elem-quote">
                table下拉选择器使用开源项目：TableSelect<br> 在开源的基础上修改支持多条件搜索、宽以及高的自定义
                <br>
                <a href="https://gitee.com/lolicode/layui_component_tableselect" target="_blank" class="layui-btn layui-btn-danger">TableSelect</a>
            </blockquote>

            <form class="layui-form" action="" style="padding:20px;">
                <div class="layui-form-item">
                    <label class="layui-form-label">多选</label>
                    <div class="layui-input-inline">
                        <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo" value="刘晓军,张恒" ts-selected="002,003">
                    </div>
                    <div class="layui-form-mid layui-word-aux">本地演示数据，分页选中和其他页一样，这不是BUG</div>
                </div>

                <div class="layui-form-item">
                    <label class="layui-form-label">单选</label>
                    <div class="layui-input-inline">
                        <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo2">
                    </div>
                </div>

                <div class="layui-form-item">
                    <label class="layui-form-label">多搜索条件</label>
                    <div class="layui-input-inline">
                        <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo3">
                    </div>
                </div>

                <div class="layui-form-item">
                    <label class="layui-form-label">下拉树</label>
                    <div class="layui-input-inline">
                        <ul id="selTree1" class="dtree" data-id="0"></ul>
                    </div>
                </div>

                <!-- <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label required">下拉树</label>
                        <div class="layui-input-inline">
                            <div class="layui-unselect layui-form-select downpanel">
                                <div class="layui-select-title">
                                    <input type="text" placeholder="选择栏目" lay-verify="required" readonly="true" name="keleyicom" value="" class="layui-input"><i class="layui-edge"></i>
                                    <dl>
                                        <dd>
                                            <ul id="classtree"></ul>
                                        </dd>
                                    </dl>
                                </div>
                            </div>
                        </div>
                    </div>
                </div> -->

            </form>

            <pre class="layui-code">

            //开始使用
            var tableSelect = layui.tableSelect;
            tableSelect.render({
                elem: '#demo',	//定义输入框input对象 必填
                checkedKey: 'id', //表格的唯一建值，非常重要，影响到选中状态 必填
                searchKey: 'keyword',	//搜索输入框的name值 默认keyword
                searchPlaceholder: '关键词搜索',	//搜索输入框的提示文字 默认关键词搜索
                height:'400',  //自定义高度
                width:'900',  //自定义宽度
                table: {	//定义表格参数，与LAYUI的TABLE模块一致，只是无需再定义表格elem
                    url:'',
                    cols: [[]]
                },
                done: function (elem, data) {
                //选择完后的回调，包含2个返回值 elem:返回之前input对象；data:表格返回的选中的数据 []
                //拿到data[]后 就按照业务需求做想做的事情啦~比如加个隐藏域放ID...
                }
            })

            //默认值
            只需要在触发input上添加 ts-selected="1,2,3" 属性即可 值需与checkedKey对应

            //多条件搜索
            tableSelect.render({
                elem: '#demo3',
                checkedKey: 'id',
                searchType: 'more', //开启多条件搜索
                searchList: [
                    {searchKey: 'name', searchPlaceholder: '搜索用户姓名'}, //搜索条件1
                    {searchKey: 'sex', searchPlaceholder: '搜索用户性别'},  //搜索条件2
                ],
                table: {
                    url: '../api/tableSelect.json',
                    cols: [[
                        { type: 'radio' },
                        { field: 'id', title: 'ID' },
                        { field: 'username', title: '姓名' },
                        { field: 'sex', title: '性别' }
                    ]]
                },
                done: function (elem, data) {
                //选择完后的回调，包含2个返回值 elem:返回之前input对象；data:表格返回的选中的数据 []
                //拿到data[]后 就按照业务需求做想做的事情啦~比如加个隐藏域放ID...
                }
            })
        </pre>

        </div>
    </div>

    <script src="../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
    <script src="../js/lay-config.js?v=1.0.4" charset="utf-8"></script>
    <script>
        layui.use(['table', 'form', 'tableSelect', 'dtree'], function() {
            var $ = layui.jquery,
                table = layui.table,
                dtree = layui.dtree,
                form = layui.form,
                tableSelect = layui.tableSelect;

            tableSelect.render({
                elem: '#demo',
                searchKey: 'my',
                checkedKey: 'id',
                searchPlaceholder: '自定义文字和name',
                table: {
                    url: '../api/tableSelect.json',
                    cols: [
                        [{
                            type: 'checkbox'
                        }, {
                            field: 'id',
                            title: 'ID',
                            width: 100
                        }, {
                            field: 'username',
                            title: '姓名',
                            width: 300
                        }, {
                            field: 'sex',
                            title: '性别',
                            width: 100
                        }]
                    ]
                },
                done: function(elem, data) {
                    var NEWJSON = []
                    layui.each(data.data, function(index, item) {
                        NEWJSON.push(item.username)
                    })
                    elem.val(NEWJSON.join(","))
                }
            })


            tableSelect.render({
                elem: '#demo2',
                checkedKey: 'id',
                table: {
                    url: '../api/tableSelect.json',
                    cols: [
                        [{
                            type: 'radio'
                        }, {
                            field: 'id',
                            title: 'ID'
                        }, {
                            field: 'username',
                            title: '姓名'
                        }, {
                            field: 'sex',
                            title: '性别'
                        }]
                    ]
                },
                done: function(elem, data) {
                    var NEWJSON = []
                    layui.each(data.data, function(index, item) {
                        NEWJSON.push(item.username)
                    })
                    elem.val(NEWJSON.join(","))
                }
            })


            tableSelect.render({
                elem: '#demo3',
                checkedKey: 'id',
                height: '400',
                width: '900',
                searchType: 'more',
                searchList: [{
                    searchKey: 'name',
                    searchPlaceholder: '搜索用户姓名'
                }, {
                    searchKey: 'sex',
                    searchPlaceholder: '搜索用户性别'
                }, ],
                table: {
                    url: '../api/tableSelect.json',
                    cols: [
                        [{
                            type: 'radio'
                        }, {
                            field: 'id',
                            title: 'ID'
                        }, {
                            field: 'username',
                            title: '姓名'
                        }, {
                            field: 'sex',
                            title: '性别'
                        }]
                    ]
                },
                done: function(elem, data) {
                    var NEWJSON = []
                    layui.each(data.data, function(index, item) {
                        NEWJSON.push(item.username)
                    })
                    elem.val(NEWJSON.join(","))
                }
            })


            dtree.renderSelect({
                elem: "#selTree1",
                width: "100%", // 指定树的宽度
                method: 'get',
                url: "../api/asyncTree1.json",
            });
        });
    </script>
</body>

</html>